const app=getApp()
Page({
  data: {
    showButtons: false, // 登录状态：false未登录，true已登录
    userInfo: '', // 注册时的微信头像临时存储
    name: '', // 微信昵称
    zh: '', // 注册账号
    ps: '', // 注册密码
    loginZh: '', // 登录账号
    loginPs: '', // 登录密码
    loginUserInfo: {} // 登录后用户信息
  },
  getName(e){
    console.log(e)
    this.setData({
      name:e.detail.value
    })
  },
  // 授权获取微信头像和昵称
  getUserProfile(e) {
    console.log('头像信息', e.detail);
    // 获取头像临时路径
    this.setData({
      userInfo: e.detail.avatarUrl
    });
    wx.getUserInfo({
      success: (res) => {
        this.setData({
          name: res.userInfo.nickName // 自动获取微信昵称
        });
      }
    });
  },
  // 输入注册账号
  getzh(e) {
    this.setData({
      zh: e.detail.value
    });
  },

  // 输入注册密码
  getpass(e) {
    this.setData({
      ps: e.detail.value
    });
  },

  // 注册功能
  zhuce() {
    if (!this.data.userInfo) {
      wx.showToast({ title: '请先授权微信头像', icon: 'none' });
      return;
    }
    if (!this.data.zh || !this.data.ps) {
      wx.showToast({ title: '账号和密码不能为空', icon: 'none' });
      return;
    }

    const db = wx.cloud.database();
    // 1. 先检查账号是否已存在
    db.collection('user').where({
      admin: this.data.zh
    }).get({
      success: (checkRes) => {
        if (checkRes.data.length > 0) {
          wx.showToast({ title: '账号已存在', icon: 'none' });
          return;
        }

        // 2. 账号不存在，执行注册
        db.collection('user').add({
          data: {
            num: Date.now(),
            faceImg: this.data.userInfo,
            nickName: this.data.name || '微信用户',
            admin: this.data.zh,
            password: this.data.ps
          },
          success: (addRes) => {
            console.log('注册成功', addRes);
            // 3. 注册成功后，立即查询当前注册用户的完整信息
            db.collection('user').where({
              _id: addRes._id // 通过刚注册的文档ID查询，精准定位当前用户
            }).get({
              success: (userRes) => {
                // 4. 直接更新登录状态和用户信息，切换到已登录页面
                this.setData({
                  showButtons: true, 
                  loginUserInfo: userRes.data[0], 
                  userInfo: '', 
                  zh: '', 
                  ps: '' 
                });
                wx.showToast({ title: '注册并登录成功' });
              },
              fail: (err) => {
                console.error('查询注册用户失败', err);
                wx.showToast({ title: '注册成功，请手动登录', icon: 'none' });
                // 失败时仍重置注册状态，让用户手动登录
                this.setData({ userInfo: '', zh: '', ps: '' });
              }
            });
          },
          fail: (err) => {
            console.error('注册失败', err);
            wx.showToast({ title: '注册失败', icon: 'none' });
          }
        });
      }
    });
  },

  // 取消注册（回到登录状态）
  cancelRegister() {
    this.setData({
      userInfo: '',
      zh: '',
      ps: ''
    });
  },

  // 登录时输入账号
  getLoginZh(e) {
    this.setData({
      loginZh: e.detail.value
    });
  },

  // 登录时输入密码
  getLoginPs(e) {
    this.setData({
      loginPs: e.detail.value
    });
  },

  // 登录功能
  denglu() {
    if (!this.data.loginZh || !this.data.loginPs) {
      wx.showToast({ title: '请输入账号和密码', icon: 'none' });
      return;
    }
    const db = wx.cloud.database();
    db.collection('user').where({
      admin: this.data.loginZh,
      password: this.data.loginPs
    }).get({
      success: (res) => {
        if (res.data.length > 0) {
          // 登录成功，保存用户信息（含头像）
          this.setData({
            showButtons: true,
            loginUserInfo: res.data[0] // 这里包含faceImg头像路径
          });
          wx.showToast({ title: '登录成功' });
          app.globalData.userinfo=res.data
        } else {
          wx.showToast({ title: '账号或密码错误', icon: 'none' });
        }
      },
      fail: (err) => {
        console.error('登录失败', err);
        wx.showToast({ title: '登录失败', icon: 'none' });
      }
    });
  },

  // 退出登录
  dengluout() {
    this.setData({
      showButtons: false,
      loginUserInfo: {},
      loginZh: '',
      loginPs: ''
    });
    wx.showToast({ title: '已退出登录', icon: 'none' });
  }
})